home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / t_os / hk / bassrc / hk4srch.bas < prev   
BASIC Source File  |  1993-07-08  |  48KB  |  1,296 lines

  1. 10 '------------------------------------------------------------------
  2. 20 '  HK4SRCH.BAS  Copyrigit(C) T.Komura   / 家計簿システム      /
  3. 30 '                                       / Version 4           /
  4. 31 '  Version 4.0  1992.08.04-1992.08.06   / 検索プログラム      /
  5. 32 '                                       /                     /
  6. 100 '------------------------------------------------------------------
  7. 165 DIM CFI$(15)
  8. 170 GOSUB *CONFIGファイルチェック
  9. 190 '
  10. 193 VERN$="1.0" 'バージョンNo.
  11. 200 *初期設定:'--------------------------------------------------------
  12. 210 CMD$="CD "+PRGDRV$:SHELL CMD$
  13. 220 SCREEN@ 0 :COLOR 7,0,0,4:CLS:CONSOLE 6,16,0:MOUSE 0
  14. 230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
  15. 235 DIM  L_W$(80)
  16. 240 LOAD@ FMBDRV$+"\FMP.FMB"
  17. 250 PLAY "@30T150V4":DATX$=DATE$
  18. 260 DIM XB1(3,33),XB2(3,33),YB1(3,33),YB2(3,33),BST(3,33)
  19. 270 DIM ITEM$(20),ITEMC(20),DYN$(16),DRM$(16),DYN#(16),SRD(16)
  20. 280 DIM UXX$(16,6),VXX$(16,2),FKEYS(15)
  21. 300 INTERVAL 1                  :'プログラム先頭
  22. 310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭 
  23. 320 GOSUB *ボタン座標読み取り
  24. 325 GOSUB *検索モード読み取り
  25. 330 'CLS:COLOR 7:PRINT int((int(((630-234+1)+7)/8)*(97-71+1)*4+8-1)/8)
  26. 350 DIM CUTN#(795),SRCS#(6292)
  27. 370 ON ERROR GOTO *ERROR
  28. 380 ON KEY(10) GOSUB *検索中止'
  29. 980 '
  30. 1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  31. 1005 GOSUB *表紙表示:CONSOLE 6,16,2
  32. 1010 MESN=18:GOSUB *SNDMSG
  33. 1015 MESN=1:GOSUB *MESDSP
  34. 1020 GOSUB *本日の日付
  35. 1030 SMODC=7:GOSUB *検索モード表示
  36. 1040 MOUSE 1,320,64,1
  37. 1100 *メイン選択
  38. 1110 IF MES2OFF=0 THEN MESN=2:GOSUB *MESDSP
  39. 1130 SWPASS=1:G=1:GOSUB *マウスボタン選択
  40. 1150 ON SWNO GOTO *S01,*S02,*S03,*S04,*S05,*S06,*S07,*S08
  41. 1160 GOTO 1100:STOP
  42. 1190 '
  43. 1200 *S01:'モード変更 --------------------------------------------------
  44. 1210  MODDEF=-1:GOTO *MODECHG
  45. 1220 *S02:'モード変更 --------------------------------------------------
  46. 1230  MODDEF=+1:GOTO *MODECHG
  47. 1250 *MODECHG
  48. 1260  G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  49. 1265  IF SMODSEL=1 OR SRCF=1 THEN MES2OFF=1:GOTO 1320
  50. 1270  SMODE=SMODE+MODDEF
  51. 1280  IF SMODE>MODEN THEN SMODE=1:GOTO 1300
  52. 1290  IF SMODE<1 THEN SMODE=MODEN:GOTO 1300
  53. 1300  SMODC=7:GOSUB *検索モード表示
  54. 1310  MES2OFF=0
  55. 1320  G=1:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  56. 1330  GOTO *メイン選択
  57. 1340 '
  58. 1500 *S03:'モード選択 ---------------------------------------------------
  59. 1510  G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  60. 1515  IF SRCF=1 THEN GOTO 1620
  61. 1520  SMODSEL=1:SMODC=4:GOSUB *検索モード表示
  62. 1560  CDTSET=0:GOSUB *検索条件設定
  63. 1570  IF SRCCAN=0 THEN 1600
  64. 1575  SMODSEL=0:SMODC=7:GOSUB *検索モード表示
  65. 1580  MES2OFF=0:GOTO 1625
  66. 1590 '
  67. 1600  GOSUB *検索条件表示:CDTSET=1
  68. 1610  MESN=13:GOSUB *MESDSP:MESN=16:GOSUB *SNDMSG
  69. 1620  MES2OFF=1
  70. 1625  G=1:B=3:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  71. 1630  GOTO *メイン選択
  72. 1690 '
  73. 1700 *S05:'取消 ---------------------------------------------------------
  74. 1710  G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  75. 1720  IF SMODSEL=1 THEN 1750
  76. 1730  MESN=14:GOSUB *MESDSP:MESN=12:GOSUB *SNDMSG
  77. 1740  FOR II=1 TO 5000:NEXT II:GOTO 1760
  78. 1750  GOSUB *検索条件消去:SMODSEL=0
  79. 1751  GOSUB *検索結果データ画面消去:SRCF=0
  80. 1755  SMODC=7:GOSUB *検索モード表示
  81. 1760  MES2OFF=0
  82. 1770  G=1:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  83. 1780  GOTO *メイン選択
  84. 1790 '
  85. 1920 '
  86. 2000 *S04:'実行 --------------------------------------------------------
  87. 2010  G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  88. 2015  IF SRCF=1 THEN MES2OFF=1:GOTO 2470
  89. 2020  IF SMODSEL=1 THEN 2100
  90. 2030  MESN=14:GOSUB *MESDSP:MESN=12:GOSUB *SNDMSG
  91. 2040  FOR II=1 TO 5000:NEXT II:MES2OFF=0:GOTO 2470
  92. 2090 '
  93. 2100  GOSUB *検索実行
  94. 2110  GOSUB *初期表示ポイント検出
  95. 2120  IF BR<>0 THEN 2200
  96. 2130  MESN=18:GOSUB *MESDSP:MESN=19:GOSUB *SNDMSG
  97. 2132  GOSUB *検索条件消去:SMODSEL=0
  98. 2134  GOSUB *検索結果データ画面消去:SRCF=0
  99. 2140  FOR II=1 TO 5000:NEXT II:MES2OFF=0:GOTO 2470
  100. 2190 '
  101. 2200  GOSUB *検索結果データ表示MAIN
  102. 2210  SRCF=1
  103. 2230  MESN=19:GOSUB *MESDSP:MESN=14:GOSUB *SNDMSG
  104. 2240  GOSUB *検索結果ページ表示
  105. 2460  MES2OFF=1
  106. 2470  G=1:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  107. 2480  GOTO *メイン選択
  108. 2490 '
  109. 2500 *S06:'検索結果頁変更-----------------------------------------------
  110. 2510  PDEF=-1:GOTO 2630
  111. 2600 *S07:'検索結果頁変更-----------------------------------------------
  112. 2610  PDEF=+1:GOTO 2630
  113. 2630  G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  114. 2700  IF SRCF=0 THEN 2760
  115. 2710  GOSUB *ページ変更
  116. 2720  GOSUB *検索結果データ表示MAIN
  117. 2760  MES2OFF=1
  118. 2770  G=1:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  119. 2780  GOTO *メイン選択
  120. 2790 '
  121. 8940 '
  122. 9000 *S08:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  123. 9020 G=1:B=8:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  124. 9060 '
  125. 9110 MESN=9:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
  126. 9120 INTERVAL OFF
  127. 9130 'MOUSE 5:GOSUB *FADEOUT
  128. 9150 CHAIN "hk4main.bas"
  129. 9160 '
  130. 9900 '-------------------------------------------------------------------
  131. 9910 '    GENERAL SUB ROUTINE
  132. 9920 '-------------------------------------------------------------------
  133. 10000 *CHR1IN:'////////// 1文字入力
  134. 10010  A$=INKEY$:IF A$="" THEN 10010
  135. 10020  A=INSTR(C$,A$)
  136. 10030  IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
  137. 10040  RETURN
  138. 10050 '
  139. 10060 '
  140. 10070 *MESDSP:'////////// メッセージ表示
  141. 10080  RESTORE *MESDAT
  142. 10090  FOR IM=1 TO MESN:READ XM,YM,CM,CB,BM,MES$:NEXT IM
  143. 10100  LOCATE 0,YM:COLOR CB,CB:PRINT SPACE$(79);
  144. 10110  LOCATE XM,YM:COLOR CM,CB:PRINT MES$;
  145. 10120  'IF BM=1 THEN PLAY "L4O4A"
  146. 10130  RETURN
  147. 10140 '
  148. 10200 *MESDAT:'////////// メッセージデータ
  149. 10205 '    XM, YN, CM, CB, BM
  150. 10210 DATA  2, 23,  5,  0,  1 :'--- 01
  151. 10215 DATA "                     - HK version 4.0 - 検索               [HKSRCH.BAS L10]"
  152. 10220 DATA  2, 23,  7,  0,  0 :'--- 02
  153. 10225 DATA "検索モードを[▲][▼]ボタンで選んでください。"
  154. 10230 DATA  2, 23,  7,  0,  0 :'--- 03
  155. 10235 DATA "●印の検索条件を設定してください。"
  156. 10240 DATA  2, 23,  4,  0,  1 :'--- 04
  157. 10245 DATA "★検索条件ファイル読み込み中 !!"
  158. 10250 DATA  2, 23,  4,  0,  1 :'--- 05
  159. 10255 DATA "★検索条件ファイル保存中 !!"
  160. 10260 DATA  2, 23,  6,  0,  1 :'--- 06
  161. 10265 DATA "この検索モードでは、指定した検索条件は無効です。"
  162. 10270 DATA  2, 23,  6,  0,  0 :'--- 07
  163. 10275 DATA "検索開始年月が検索終了年月よりも大きくなっています。 訂正してください。"
  164. 10280 DATA  2, 23,  6,  0,  0 :'--- 08
  165. 10285 DATA "金額範囲の指定に誤りがあります。訂正してください。"
  166. 10290 DATA  2, 23,  5,  0,  1 :'--- 09
  167. 10295 DATA "       ★★★ しばらくお待ちください。"
  168. 10300 DATA  2, 23,  6,  0,  0 :'--- 10
  169. 10305 DATA "この検索モードでは、指定した検索項目は無効です。検索項目を選択し直して下さい。"
  170. 10310 DATA  2, 23,  6,  0,  0 :'--- 11
  171. 10315 DATA "検索項目が指定されていません。 検索項目を選んでください。"
  172. 10320 DATA  2, 23,  7,  0,  0 :'--- 12
  173. 10325 DATA "検索条件ファイルを保存しますか? 保存する--[OK] 保存しない--[NG]"
  174. 10330 DATA  2, 23,  7,  0,  1 :'--- 13
  175. 10335 DATA "検索条件を確認して[実行]ボタンを押してください。"
  176. 10340 DATA  2, 23,  6,  0,  1 :'--- 14
  177. 10345 DATA "検索モードを選んでください。"
  178. 10350 DATA  2, 23,  6,  0,  1 :'--- 15
  179. 10355 DATA "検索開始年月の家計簿ファイルがありません。"
  180. 10360 DATA  2, 23,  6,  0,  1 :'--- 16
  181. 10365 DATA "検索終了年月の家計簿ファイルがありません。"
  182. 10370 DATA  2, 23,  4,  0,  1 :'--- 17
  183. 10375 DATA "★検索実行中!! (中止は[PF10])"
  184. 10380 DATA  2, 23,  6,  0,  1 :'--- 18
  185. 10385 DATA "検索の結果該当するデータが有りませんでした。"
  186. 10390 DATA  2, 23,  7,  0,  1 :'--- 19
  187. 10395 DATA "検索終了! [▲前頁][▼次頁]で頁切替え。 [取消]で検索終了。"
  188. 10990 '
  189. 11000 *SNDMSG:'  SAVE "SNDMSG.SUB",A
  190. 11005  IF SNDMF=0 THEN RETURN
  191. 11010  '・・・・・・・・・・・・・・・・・  サウンドメッセージ実行サブルーチン  1989.02.04
  192. 11020  '                   入力=MESN (メッセージNo.)
  193. 11030  '
  194. 11070  IF MESN>36 THEN *RETURN_SNDMSG
  195. 11080  RESTORE *MSGNAM
  196. 11090  FOR IMSG=1 TO MESN
  197. 11100    READ MSGD$
  198. 11110  NEXT IMSG
  199. 11120  MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
  200. 11130  LOAD@ MSGFN$,MSGD%
  201. 11140  PCMPLAY MSGD%
  202. 11150 *RETURN_SNDMSG :WAIT SWAIT:RETURN
  203. 11160 *MSGNAM :'////////// .SND File Name Data
  204. 11170 DATA "OHA1"   :'  1 おはよう
  205. 11180 DATA "KONN"   :'  2 こんにちわ
  206. 11190 DATA "KONBAN" :'  3 こんばんわ
  207. 11200 DATA "GOKRO1" :'  4 ごくろうさん
  208. 11210 DATA "GOKRO2" :'  5 ごくろうさま
  209. 11220 DATA "OTUKA"  :'  6 お疲れさま
  210. 11230 DATA "OMATA"  :'  7 おまたせ
  211. 11240 DATA "ARIGA2" :'  8 ありがとう
  212. 11250 DATA "RUNRUN" :'  9 るんるん
  213. 11260 DATA "DAMEDE" :' 10 だめでしょう
  214. 11270 DATA "IIDE1"  :' 11 いいですか
  215. 11280 DATA "NANISI" :' 12 なにしてるの
  216. 11290 DATA "DAMEDA" :' 13 だめだめ
  217. 11300 DATA "OWARI"  :' 14 終わりました
  218. 11310 DATA "SIBA"   :' 15 しばらくお待ち下さい
  219. 11320 DATA "YOROSI" :' 16 よろしいですか
  220. 11330 DATA "TYANTO" :' 17 ちゃんとしなさい
  221. 11340 DATA "ERANDE" :' 18 選んでください
  222. 11350 DATA "KAKNIN" :' 19 確認して下さい
  223. 11360 DATA "NYURYO" :' 20 入力してください
  224. 11370 DATA "IRA"    :' 21 いらっしゃいませ 
  225. 11380 DATA "OYASUM" :' 22 おやすみ
  226. 11390 DATA "ARIGA3" :' 23 ありがとうございました
  227. 11400 DATA "TYOTO"  :' 24 ちょっと待って
  228. 11410 DATA "OOKINA" :' 25 大きな間違い
  229. 11420 DATA "YAMETE" :' 26 やめて
  230. 11430 DATA "TIGAU"  :' 27 ちがうよ
  231. 11440 DATA "PINPON" :' 28 ぴんぽーん
  232. 11450 DATA "BUU"    :' 29 ぶー
  233. 11460 DATA "MOUII"  :' 30 もういいよう  
  234. 11470 DATA "DEKITA" :' 31 できたよー
  235. 11480 DATA "IIDE2"  :' 32 いいですか(2)
  236. 11490 DATA "YOSI"   :' 33 よしなさい
  237. 11500 DATA "OYOSI"  :' 34 およしなさい
  238. 11510 DATA "YAMENA" :' 35 やめなさい
  239. 11520 DATA "GOMEN"  :' 36 ごめん
  240. 11530 '                                    
  241. 12000 '////////// 年月日入力 & 曜日表示
  242. 12010 '                    
  243. 12045 *週検索
  244. 12050 DATA "日",2,"月",0,"火",0,"水",0,"木",0,"金",0,"土",5
  245. 12060 GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
  246. 12080 RETURN
  247. 12090 '
  248. 12100 *YMDIN            '  V2.0  1991.07.21
  249. 12110 LX=XYMD:LY=YYMD:LC=CYMD:LL=4:LM$=INYR$
  250. 12120 LOCATE LX,LY:COLOR BYMD:PRINT "    年   月  日";
  251. 12130 LOCATE LX,LY:COLOR CYMD:PRINT LM$:GOSUB *LKEYIN: INYR$=LMG$
  252. 12140 LOCATE LX,LY:COLOR AYMD:PRINT LMG$
  253. 12145 YR=VAL(INYR$)
  254. 12150 LX=XYMD+7:LY=YYMD:LC=CYMD:LL=2:LM$=INMN$
  255. 12160 LOCATE LX,LY:COLOR CYMD:PRINT LM$:GOSUB *LKEYIN: INMN$=LMG$
  256. 12170 LOCATE LX,LY:COLOR AYMD:PRINT LMG$
  257. 12175 MN=VAL(INMN$):IF MN<1 OR MN>12 THEN BEEP:GOTO 12160
  258. 12180 LX=XYMD+11:LY=YYMD:LC=CYMD:LL=2:LM$=INDY$
  259. 12190 LOCATE LX,LY:COLOR CYMD:PRINT LM$:GOSUB *LKEYIN: INDY$=LMG$
  260. 12200 LOCATE LX,LY:COLOR AYMD:PRINT LMG$
  261. 12205 DY=VAL(INDY$):IF DY<1 OR DY>31 THEN BEEP:GOTO 12190
  262. 12210 RETURN
  263. 12220 '
  264. 12450 *WEEKN :'////////// 週NO.検索
  265. 12460 U=0    :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN   Output; WK DN
  266. 12470 IF YR/4-INT(YR/4)=0 THEN U=1
  267. 12480 DATA 31,28,31,30,31,30,31,31,30,31,30,31
  268. 12490 DATA 31,29,31,30,31,30,31,31,30,31,30,31
  269. 12500 IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
  270. 12505 IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
  271. 12510 MDN=0:FOR IWEKN=1 TO MN-1:READ DN:MDN=MDN+DN:NEXT IWEKN
  272. 12515 READ MNDN:'当月の日数
  273. 12520 YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
  274. 12530 WK=(YDN#/7-INT(YDN#/7))*7
  275. 12540 RETURN
  276. 13000 '                                          1993.02.12 T.Komura
  277. 13010 *LKEYIN  :'・・・・・・・・・・・ 1 行全角文字入力サブルーチン
  278. 13020 ' v1.1a   入力 = LX,LY : 表示開始座標  出力 = LMG$ : 入力後の文字列
  279. 13030 '                LM$   : 初期文字列
  280. 13040 '                LC    : 表示文字色
  281. 13050 '                LL    : 最大文字数
  282. 13060 '
  283. 13070 LCSRCL=2:LLINCL=6
  284. 13080 '      CR   MR   ML  INS  DEL   BS  CAN
  285. 13085 LMSX=MOUSE(0):LMSY=MOUSE(1):MOUSE 5     :'v1.1a
  286. 13090 CC$=CHR$(&H0D,&H1C,&H1D,&H12,&H7F,&H08,&H18)
  287. 13100 LMG$=SPACE$(LL):LMGD$=SPACE$(LL)
  288. 13110 LA$=INKEY$:IF LA$<>"" THEN 13110
  289. 13120 LCSR=0:LCSRX=LCSR:GOSUB *LCSRDX
  290. 13130 LOCATE LX,LY:COLOR LC:PRINT LM$ '        ・・・・・・・・・・ 初期文字列記憶
  291. 13140 LINE(LX*8,LY*19+16)-((LX+LL)*8,LY*19+17),XOR,LLINCL,BF
  292. 13150 LMX$=LEFT$(LM$+SPACE$(LL),LL)
  293. 13160 GOSUB *LMREAD
  294. 13170 *IN1C:'                                  ・・・・・・・・・・ 1 文字入力
  295. 13180 LA$=INKEY$:IF LA$="" THEN 13180
  296. 13190 ALA=ASC(LA$):CLA=INSTR(CC$,LA$)
  297. 13200 IF CLA=0 THEN 13220
  298. 13210 ON CLA GOTO *CR,*MR,*ML,*INS,*DEL,*BS,*CAN
  299. 13220 IF KANF=1 THEN *KANJI
  300. 13230 IF ALA<&H20 THEN BEEP:GOTO *IN1C
  301. 13240 IF ALA>=&H20 AND ALA<&H80 THEN *ANK
  302. 13250 IF ALA>=&HA0 AND ALA<&HE0 THEN *ANK
  303. 13260 GOTO *KANJI
  304. 13270 *ANK :'                                  ・・・・・・・・・・ ANK 文字入力
  305. 13280 LOCATE LX+LCSR,LY:COLOR LC:PRINT LA$
  306. 13290 MID$(LMX$,LCSR+1,1)=LA$
  307. 13300 GOSUB *LCSRINC:GOTO *IN1C
  308. 13310 *KANJI :'                                ・・・・・・・・・・ 漢字文字入力
  309. 13320 ON KANF+1 GOTO 13330,13360
  310. 13330 KANF=1:KANW$="":KANW$=LA$
  311. 13340 IF LCSR+1>=LL THEN KANF=0:BEEP
  312. 13350 GOSUB *LCSRD:GOTO *IN1C
  313. 13360 KANF=0:KANW$=KANW$+LA$
  314. 13370 LOCATE LX+LCSR,LY:COLOR LC:PRINT KANW$
  315. 13380 MID$(LMX$,LCSR+1,2)=KANW$
  316. 13390 GOSUB *LCSR2INC:GOTO *IN1C
  317. 13400 *CR :GOSUB *LMREAD :GOSUB *LCSRDX         '////////// End
  318. 13410 LINE(LX*8,LY*19+16)-((LX+LL)*8,LY*19+17),XOR,LLINCL,BF
  319. 13415 MOUSE 0: MOUSE 1,LMSX,LMSY,1              :'v1.1a
  320. 13420 RETURN:'----------------------------------------------------------
  321. 13430 *MR :GOSUB *LCSRINC                       '////////// Right
  322. 13440 GOTO *IN1C
  323. 13450 *ML :GOSUB *LCSRDEC                       '////////// Left
  324. 13460 GOTO *IN1C
  325. 13470 *INS:GOSUB *LMREAD                       '////////// Insert
  326. 13480 IF LMGF$="2" THEN BEEP:GOTO *IN1C
  327. 13490 LMX$=LEFT$(LMG$,LCSR)+" "+MID$(LMG$,LCSR+1,LL-1-LCSR)
  328. 13500 GOSUB *LMXDSP
  329. 13510 GOTO *IN1C
  330. 13520 *DEL:GOSUB *LMREAD                       '////////// Delete
  331. 13530 IF LMGF$="2" THEN BEEP:GOTO *IN1C
  332. 13540 IF LMGF$="1" THEN 13560
  333. 13550 LMX$=LEFT$(LMG$,LCSR)+MID$(LMG$,LCSR+2,LL-1-LCSR)+" ":GOTO 13570
  334. 13560 LMX$=LEFT$(LMG$,LCSR)+MID$(LMG$,LCSR+3,LL-2-LCSR)+"  "
  335. 13570 GOSUB *LMREAD
  336. 13580 GOSUB *LMXDSP:GOTO *IN1C
  337. 13590 *BS :GOSUB *LMREAD                       '////////// BackSpace
  338. 13600 IF LCSR=0 THEN BEEP:GOTO *IN1C
  339. 13610 IF LMGF$="2" THEN BEEP:GOTO *IN1C
  340. 13620 GOSUB *LCSRDEC:GOSUB *LMREAD:LMGFX$=LMGF$
  341. 13630 LMX$=LEFT$(LMG$,LCSR)+MID$(LMG$,LCSR+2,LL-1-LCSR)+" "
  342. 13640 IF LMGFX$="2" THEN LMGFX$="0":GOSUB *LMREAD:GOTO 13620
  343. 13650 GOSUB *LMXDSP
  344. 13660 GOTO *IN1C
  345. 13670 *CAN :LMX$=SPACE$(LL)                    '////////// Clear
  346. 13680 GOSUB *LMXDSP:LCSR=0:GOSUB *LCSRD
  347. 13690 GOSUB *LMREAD:GOTO *IN1C
  348. 13700 *LMREAD:                                 '////////// Disp Char Read 
  349. 13710 LMDX=0:LMGD$=""
  350. 13720 FOR II=1 TO LL
  351. 13730   LMG=ASC(MID$(LMX$,II,1))
  352. 13740   IF (LMG>=&H80) AND (LMG<&HA0) THEN LMDK=1 ELSE LMDK=0
  353. 13750   IF LMDX=1            THEN LMD$="2":LMDX=0:GOTO 13780
  354. 13760   IF LMDK=1 AND LMDX=0 THEN LMD$="1":LMDX=1:GOTO 13780
  355. 13770   IF LMDK=0 THEN            LMD$="0":LMDX=0
  356. 13780   LMGD$=LMGD$+LMD$
  357. 13790 NEXT II:LMGF$=MID$(LMGD$,LCSR+1,1):LMG$=LMX$
  358. 13800 RETURN
  359. 13810 *LCSRD :LXC=8*(LX+LCSR) :LYC=LY*19:GOSUB 13840: '//// Csr Disp
  360. 13820 *LCSRDX:LXC=8*(LX+LCSRX):LYC=LY*19:GOSUB 13840: '//// Csr Erace
  361. 13830 LCSRX=LCSR:RETURN
  362. 13840 LINE(LXC,LYC+0)-(LXC+1,LYC+14),XOR,LCSRCL,BF:RETURN
  363. 13850 *LCSRINC :LCSR=LCSR+1:IF LCSR>=LL THEN LCSR=LL-1
  364. 13860 GOSUB *LCSRD:RETURN
  365. 13870 *LCSR2INC:LCSR=LCSR+2:IF LCSR>=LL THEN LCSR=LL-2
  366. 13880 GOSUB *LCSRD:RETURN
  367. 13890 *LCSRDEC :LCSR=LCSR-1:IF LCSR<0   THEN LCSR=0
  368. 13900 GOSUB *LCSRD:RETURN
  369. 13910 *LMXDSP:LOCATE LX,LY:COLOR LC:PRINT LMX$;:RETURN
  370. 15000 '
  371. 15010 '  SAVE"TCLOCK.sub"             :'   組み込み型 アナログ時計 V1.1
  372. 15020 '                                       1991.05 T.KOMURA 
  373. 15030 '--------------------------------------------------------------------
  374. 15040 '
  375. 15220 *時計表示:'///////////////////////////////////
  376. 15230 XCLK0=572:YCLK0=22:CLKR=16:PI=3.1415!
  377. 15240 TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
  378. 15250 TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
  379. 15260 TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
  380. 15270 THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
  381. 15280 GOSUB *短針表示
  382. 15290 GOSUB *長針表示
  383. 15300 GOSUB *秒針表示
  384. 15310 CLOCKINIT=1:DATX$=DATE$
  385. 15320 RETURN
  386. 15330 '
  387. 15340 *短針表示
  388. 15350 XHD1=XCLK0+(CLKR-8)*SIN(HRR):XHD2=XCLK0
  389. 15360 YHD1=YCLK0-(CLKR-8)*COS(HRR):YHD2=YCLK0
  390. 15370 IF CLOCKINIT=0 THEN 15400
  391. 15380 IF SCR<>0 THEN 15420
  392. 15390 LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
  393. 15400 LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
  394. 15410 XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
  395. 15420 RETURN
  396. 15430 *長針表示
  397. 15440 XMD1=XCLK0+(CLKR-2)*SIN(MNR):XMD2=XCLK0
  398. 15450 YMD1=YCLK0-(CLKR-2)*COS(MNR):YMD2=YCLK0
  399. 15460 IF CLOCKINIT=0 THEN 15490
  400. 15470 IF SCR<>0 THEN 15510
  401. 15480 LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
  402. 15490 LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
  403. 15500 XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
  404. 15510 RETURN
  405. 15520 *秒針表示
  406. 15530 XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
  407. 15540 YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
  408. 15550 IF CLOCKINIT=0 THEN 15570
  409. 15560 LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
  410. 15570 LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
  411. 15580 XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
  412. 15590 RETURN
  413. 16000 '
  414. 19000 '
  415. 19010 '//////////////////////////////////////////////////////////////
  416. 19020 *ERROR:'      エラー処理サブルーチン V1.10   1990.11.08 T.Komura
  417. 19030 '             
  418. 19040 '
  419. 19050 IF ERR=53 THEN *IOERR
  420. 19060 IF ERR=63 THEN *FILNOF
  421. 19070 IF ERR=67 THEN *DSKFUL
  422. 19080 IF ERR=71 THEN *DSKUNF 
  423. 19090 IF ERR=72 THEN *DSKOFF
  424. 19100 IF ERR=73 THEN *DSKWP
  425. 19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
  426. 19120 GOSUB *ERMSG
  427. 19130 STOP
  428. 19140 '////////// エラー処理
  429. 19150 *IOERR
  430. 19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
  431. 19170 GOSUB *ERMSG:RESUME
  432. 19180 *DSKFUL
  433. 19190 ERMES$="ディスクが満杯です。 交換後、"
  434. 19200 GOSUB *ERMSG:RESUME
  435. 19210 *DSKUNF
  436. 19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
  437. 19230 GOSUB *ERMSG:RESUME
  438. 19240 *DSKOFF
  439. 19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
  440. 19260 GOSUB *ERMSG:RESUME
  441. 19270 *DSKWP
  442. 19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
  443. 19290 GOSUB *ERMSG:RESUME
  444. 19300 *FILNOF
  445. 19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
  446. 19320 GOSUB *ERMSG:RESUME
  447. 19330 '
  448. 19340 *ERMSG:'////////// エラーメッセージ
  449. 19350 LOCATE 2,23:COLOR 2,0
  450. 19355 PRINT SPACE$(77);
  451. 19359 LOCATE 2,23:COLOR 2,0
  452. 19360 PRINT ERMES$;"[実行]キーを押してね!";
  453. 19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
  454. 19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
  455. 19390 IF ERRA$<>CHR$(&H0D) THEN 19380
  456. 19400 LOCATE 3,23:COLOR 6,0
  457. 19410 PRINT "エラー処理を終わります。";SPACE$(52);
  458. 19420 RETURN
  459. 19430 '
  460. 19440 '
  461. 19450 '
  462. 20000 '------------------------------------------------------------------
  463. 20010 ' CUSTOM SUB ROUTINE FOR "HK4SRCH.BAS"
  464. 20020 '------------------------------------------------------------------
  465. 20100 *表紙表示
  466. 20140  LOAD@ TIFDRV$+"\HK4SRCH.TIF",(0,0)
  467. 20145  INTERVAL ON
  468. 20160  RETURN
  469. 20190 '
  470. 20200 *本日の日付
  471. 20210  TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
  472. 20212  IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
  473. 20214  TY$=RIGHT$(STR$(TY),4)
  474. 20220  TM$=MID$(DATE$,4,2):TM=VAL(TM$)
  475. 20230  TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
  476. 20250  YR=TY:MN=TM:DY=TD:GOSUB *週検索:IF CW=0 THEN CW=7
  477. 20260  TYMD$=TY$+"年"+TM$+"月"+TD$+"日"+"   曜日"
  478. 20265  COLOR 7,0:LOCATE 46,1:PRINT TYMD$
  479. 20270  COLOR CW:LOCATE 61,1:PRINT WKM$
  480. 20280  RETURN
  481. 20290 '
  482. 20300 *検索年月表示
  483. 20310  SRYR$=RIGHT$(STR$(SRYR),4)
  484. 20315  NBN=4:NBA$=SRYR$:GOSUB *数字漢字変換:KYR$=NBK$
  485. 20320  SRMN$=RIGHT$(STR$(100+SRMN),2)
  486. 20325  NBN=2:NBA$=SRMN$:GOSUB *数字漢字変換:KMN$=NBK$
  487. 20350  DYMD$=KYR$+SPACE$(9)+KMN$
  488. 20360  COLOR 7,0:LOCATE 39,9+(SRCIN-1)*2:PRINT DYMD$;
  489. 20380  RETURN
  490. 20390 '
  491. 20400 *検索モード表示
  492. 20410  LOCATE 12,3:COLOR SMODC
  493. 20420  PRINT SMODE$(SMODE);
  494. 20430  RETURN
  495. 20440 '
  496. 20600 *年月変更
  497. 20601  'GOSUB *WEEKN
  498. 20602  'DY=DY+DDEF
  499. 20604  'IF DY<1 THEN MN=MN-1:GOSUB *WEEKN:DY=MNDN
  500. 20606  'IF DY>MNDN THEN MN=MN+1:DY=1
  501. 20610  MN=MN+MDEF
  502. 20620  IF MN<1 THEN MN=12+MN:YR=YR-1
  503. 20630  IF MN>12 THEN MN=MN-12:YR=YR+1
  504. 20640  YR=YR+YDEF
  505. 20650  IF YR<0 THEN YR=10000+YR
  506. 20660  IF YR>9999 THEN YR=YR-10000
  507. 20665  'GOSUB *WEEKN:IF DY>MNDN THEN DY=MNDN
  508. 20668  'DY$=RIGHT$(STR$(100+DY),2)
  509. 20670  MN$=RIGHT$(STR$(100+MN),2)
  510. 20680  YR$=RIGHT$(STR$(10000+YR),4)
  511. 20690  RETURN
  512. 20695 '
  513. 20700 *検索条件枠表示
  514. 20710  GET@A(208,125)-(557,410),SRCS#
  515. 20720  LOAD@ TIFDRV$+"\HK4SRCS.TIF",(208,125)
  516. 20722  FOR II=1 TO 15
  517. 20724    X=319+46*INT((II-1)/3):Y=327+17*((II-1) MOD 3)
  518. 20725    IF II>3 AND II<8 THEN C=1 ELSE C=0
  519. 20726    SYMBOL(X,Y),CFI$(II),.7!,.7!,C
  520. 20728  NEXT II
  521. 20730  FOR II=1 TO 5
  522. 20732    IF SMOPT(SMODE,II)=0 THEN 20738 
  523. 20734    LOCATE 28,9+(II-1)*2:COLOR 3
  524. 20736    PRINT "●";
  525. 20738  NEXT II
  526. 20740  RETURN
  527. 20750 *検索条件枠消去
  528. 20760  FOR II=1 TO 9
  529. 20762    LOCATE 28,9+II-1:PRINT SPACE$(40);
  530. 20764  NEXT II
  531. 20770  PUT@A(208,125)-(557,410),SRCS#
  532. 20785  RETURN
  533. 20790 '
  534. 20800 *検索条件読み込み
  535. 20805  MESN=4:GOSUB *MESDSP
  536. 20810  GOSUB *SRCSGET
  537. 20820  SRYR=SR1YR:SRMN=SR1MN:SRCIN=1:GOSUB *検索年月表示
  538. 20825  YRS=SRYR:MNS=SRMN
  539. 20830  SRYR=SR2YR:SRMN=SR2MN:SRCIN=2:GOSUB *検索年月表示
  540. 20835  YRE=SRYR:MNE=SRMN
  541. 20840  LOCATE 39,13:COLOR 7:PRINT SX$(5)
  542. 20850  LOCATE 39,15:COLOR 7:PRINT SX$(6)
  543. 20860  LOCATE 55,15:COLOR 7:PRINT SX$(7)
  544. 20865  YNL#=VAL(SX$(6)):YNH#=VAL(SX$(7))
  545. 20870  SX8=0:SX8X=SX8:SX$(8)=SPACE$(2):SITM=0
  546. 20880  'G=2:B=SX8B:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  547. 20890  RETURN
  548. 20895 '
  549. 20900 *検索条件保存
  550. 20905  MESN=5:GOSUB *MESDSP
  551. 20910  GOSUB *SRCSPUT
  552. 20920  RETURN
  553. 20930 '
  554. 21000 *検索条件設定
  555. 21010  GOSUB *検索条件枠表示
  556. 21020  GOSUB *検索条件読み込み
  557. 21030  MESN=3:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
  558. 21040  G=2:GOSUB *マウスボタン選択
  559. 21050  IF SWNO>13 THEN *SRCS項目選択
  560. 21060  ON SWNO GOTO *SI01,*SI02,*SI03,*SI04,*SI05,*SI06,*SI07,*SI08,*SI09,*SI10,*SI11,*SI12,*SI13
  561. 21090 '//////////////////////////////////////////////////////////////
  562. 21100  *SI03:YDEF=+1:MDEF= 0:GOTO 21140
  563. 21110  *SI04:YDEF=-1:MDEF= 0:GOTO 21140
  564. 21120  *SI05:YDEF= 0:MDEF=+1:GOTO 21140
  565. 21130  *SI06:YDEF= 0:MDEF=-1:GOTO 21140
  566. 21140   G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  567. 21150   SRCIN=1:IF SMOPT(SMODE,SRCIN)=0 THEN GOSUB *SELERR:GOTO 21185
  568. 21160   YR=SR1YR:MN=SR1MN:GOSUB *年月変更:SR1YR=YR:SR1MN=MN
  569. 21170   SX$(1)=YR$:SX$(2)=MN$:YRS=YR:MNS=MN
  570. 21180   SRYR=SR1YR:SRMN=SR1MN:GOSUB *検索年月表示
  571. 21185   G=2:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  572. 21190   GOTO 21040
  573. 21200  *SI07:YDEF=+1:MDEF= 0:GOTO 21240
  574. 21210  *SI08:YDEF=-1:MDEF= 0:GOTO 21240
  575. 21220  *SI09:YDEF= 0:MDEF=+1:GOTO 21240
  576. 21230  *SI10:YDEF= 0:MDEF=-1:GOTO 21240
  577. 21240   G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  578. 21250   SRCIN=2:IF SMOPT(SMODE,SRCIN)=0 THEN GOSUB *SELERR:GOTO 21285
  579. 21260   YR=SR2YR:MN=SR2MN:GOSUB *年月変更:SR2YR=YR:SR2MN=MN
  580. 21270   SX$(3)=YR$:SX$(4)=MN$:YRE=YR:MNE=MN
  581. 21280   SRYR=SR2YR:SRMN=SR2MN:GOSUB *検索年月表示
  582. 21285   G=2:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  583. 21290   GOTO 21040
  584. 21300  *SI11:
  585. 21310   G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  586. 21320   SRCIN=3:IF SMOPT(SMODE,SRCIN)=0 THEN GOSUB *SELERR:GOTO 21385
  587. 21330   LX=39:LY=13:LM$=SX$(5):LL=24:LC=4
  588. 21340   LOCATE LX,LY:COLOR LC:PRINT LM$:GOSUB *LKEYIN
  589. 21350   SX$(5)=LMG$
  590. 21360   LOCATE LX,LY:COLOR 7 :PRINT SX$(5)
  591. 21385   G=2:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  592. 21390   GOTO 21040
  593. 21400  *SI12:
  594. 21410   G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  595. 21420   SRCIN=4:IF SMOPT(SMODE,SRCIN)=0 THEN GOSUB *SELERR:GOTO 21485
  596. 21430   LX=39:LY=15:LM$=SX$(6):LL=8:LC=4
  597. 21440   LOCATE LX,LY:COLOR LC:PRINT LM$:GOSUB *LKEYIN
  598. 21450   YNL#=VAL(LMG$):SX$(6)=RIGHT$(SPACE$(8)+STR$(YNL#),8)
  599. 21460   LOCATE LX,LY:COLOR 7 :PRINT SX$(6)
  600. 21485   G=2:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  601. 21490   GOTO 21040
  602. 21500  *SI13:
  603. 21510   G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  604. 21520   SRCIN=4:IF SMOPT(SMODE,SRCIN)=0 THEN GOSUB *SELERR:GOTO 21585
  605. 21530   LX=55:LY=15:LM$=SX$(7):LL=8:LC=4
  606. 21540   LOCATE LX,LY:COLOR LC:PRINT LM$:GOSUB *LKEYIN
  607. 21550   YNH#=VAL(LMG$):SX$(7)=RIGHT$(SPACE$(8)+STR$(YNH#),8)
  608. 21560   LOCATE LX,LY:COLOR 7 :PRINT SX$(7)
  609. 21585   G=2:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  610. 21590   GOTO 21040
  611. 21600  *SRCS項目選択
  612. 21605   SRCIN=5:IF SMOPT(SMODE,SRCIN)=0 THEN GOSUB *SELERR:GOTO 21690
  613. 21610   SX8=SWNO:IF SX8X=0 THEN 21620
  614. 21615   G=2:B=SX8X:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  615. 21620   G=2:B=SX8 :BST(G,B)=1:GOSUB *ボタンON_OFF表示
  616. 21630   SX8X=SX8
  617. 21640   SX$(8)=RIGHT$(STR$(SX8-13),2):SITM=VAL(SX$(8))
  618. 21690   GOTO 21040
  619. 21800  *SELERR
  620. 21810   MESN=6:GOSUB *MESDSP:MESN=13:GOSUB *SNDMSG
  621. 21820   FOR II=1 TO 5000:NEXT II
  622. 21825   MESN=3:GOSUB *MESDSP
  623. 21830   RETURN
  624. 21840  *SI01'
  625. 21845   G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  626. 21850   YRS$=RIGHT$(STR$(10000+YRS),4)
  627. 21851   MNS$=RIGHT$(STR$(100+MNS),2):IYM$=YRS$+MNS$:GOSUB *HKISRC
  628. 21852     IF FIDX=0 THEN MESN=15:GOSUB *VALERR:GOTO 21950:'NG
  629. 21854   YRE$=RIGHT$(STR$(10000+YRE),4)
  630. 21855   MNE$=RIGHT$(STR$(100+MNE),2):IYM$=YRE$+MNE$:GOSUB *HKISRC
  631. 21856     IF FIDX=0 THEN MESN=16:GOSUB *VALERR:GOTO 21950:'NG
  632. 21860   IF SMOPT(SMODE,2)=0             THEN 21880 :'?
  633. 21870     IF (YRS*12+MNS)<=(YRE*12+MNE) THEN 21880 :'?
  634. 21875     MESN=7:GOSUB *VALERR:GOTO 21950          :'NG
  635. 21880   IF SMOPT(SMODE,4)=0 THEN 21900             :'?
  636. 21890     IF YNL#<=YNH#       THEN 21900             :'?
  637. 21895     MESN=8:GOSUB *VALERR:GOTO 21950          :'NG
  638. 21900   IF SITM=0      THEN MESN=11:GOSUB *VALERR:GOTO 21950:'NG
  639. 21910     IF SMODE<>2 THEN 21920                   :'?
  640. 21915       IF SITM=1  THEN MESN=10:GOSUB *VALERR:GOTO 21950:'NG
  641. 21920     IF SMODE<>3 THEN 21930                   :'?
  642. 21925       IF SITM=1  THEN MESN=10:GOSUB *VALERR:GOTO 21950:'NG
  643. 21930     IF SMODE<>4 THEN *SIEND                  :'OK
  644. 21940       IF SITM>17 THEN MESN=10:GOSUB *VALERR:GOTO 21950:'NG
  645. 21945       GOTO *SIEND                            :'OK
  646. 21950  *SIRETRY
  647. 21960   G=2:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  648. 21970   GOTO 21040
  649. 22000  *SI02'
  650. 22005   G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  651. 22010   SRCCAN=1:GOTO 22170
  652. 22015   MESN=12:GOSUB *MESDSP
  653. 22020   CMES$="検索条件をファイルに保存":GOSUB *確認
  654. 22030   IF SWNO=1 THEN 22160 ELSE 22170
  655. 22100  *VALERR
  656. 22110   GOSUB *MESDSP:MESN=25:GOSUB *SNDMSG
  657. 22130   FOR II=1 TO 8000:NEXT II
  658. 22135   MESN=3:GOSUB *MESDSP
  659. 22140   RETURN
  660. 22150  *SIEND
  661. 22155   SRCCAN=0
  662. 22160   GOSUB *検索条件保存
  663. 22170   GOSUB *検索条件枠消去
  664. 22180   RETURN
  665. 22190 '
  666. 22200 *検索条件表示
  667. 22205  LINE(14,88)-(549,107),PSET,7,BF
  668. 22206  IF SMODE=4 THEN 22215
  669. 22210  SRCYM$=SX$(1)+"."+SX$(2)+" テ "+SX$(3)+"."+SX$(4):GOTO 22220
  670. 22215  SRCYM$=SX$(1)+"."+SX$(2)+" テ "+SX$(1)+"."+SX$(2)
  671. 22220  LOCATE 47,3:COLOR 4:PRINT SRCYM$;
  672. 22230  IF SITM=1 THEN 22245
  673. 22240  SCOM1$="   年 月 日 (曜) | 項  目 |  金   額  |":GOTO 22250
  674. 22245  SCOM1$="   年 月 日 |"
  675. 22246  SYMBOL(118,90),"出 来 事",1,1,0,,,&H01
  676. 22250  SYMBOL(20,93),SCOM1$,.8!,.8!,0,,,&H01
  677. 22255  IF SITM=1 THEN 22270
  678. 22265  SYMBOL(269,90),ITEM$(SITM),1,1,ITEMC(SITM),,,&H01
  679. 22270  IF SMODE=2 OR SMODE=4 THEN 22280
  680. 22274  SYMBOL(337,89),"KeyWord:",.5!,.6!,4,,,,1
  681. 22275  SYMBOL(377,89),SX$(5),.8!,.6!,0,,,,1
  682. 22280  IF SITEM=1 OR SMODE=1 OR SMODE=4 THEN 22300
  683. 22284  SYMBOL(337,100),"  Lower:",.5!,.5!,1,,,,1
  684. 22285  SYMBOL(377,100),SX$(6),.8!,.5!,1,,,,1
  685. 22290  SYMBOL(457,100),"Upper:",.5!,.5!,1,,,,1
  686. 22295  SYMBOL(488,100),SX$(7),.8!,.5!,1,,,,1
  687. 22300  RETURN
  688. 22310 '
  689. 22320 *検索条件消去
  690. 22330  LOCATE 47,3:PRINT SPACE$(30)
  691. 22340  LINE(14,88)-(549,107),PSET,7,BF
  692. 22350  RETURN
  693. 22360 '
  694. 23000 *キーワード検出
  695. 23010  KEYWN=0:FOR II=1 TO 5:KEYS$(II)="":NEXT II
  696. 23020  KEYW$=SX$(5)
  697. 23030  SPN=INSTR(KEYW$," ")
  698. 23035  IF SPN=0 THEN 23050
  699. 23040  IF SPN=1 THEN RETURN
  700. 23045  KEYW$=LEFT$(KEYW$,SPN-1)
  701. 23050  FOR II=1 TO 5
  702. 23060    SLN=INSTR(KEYW$,"/")
  703. 23070    IF SLN<>0 THEN 23085
  704. 23080    KEYS$(II)=KEYW$:KEYWN=II:II=6:GOTO 23120
  705. 23085    KEYL=LEN(KEYW$)
  706. 23090    IF SLN=1 THEN KEYW$=RIGHT$(KEYW$,KEYL-1):GOTO 23120
  707. 23100    KEYS$(II)=LEFT$(KEYW$,SLN-1)
  708. 23110    KEYW$=RIGHT$(KEYW$,KEYL-SLN)
  709. 23120  NEXT II
  710. 23125      'COLOR 1:FOR II=1 TO 5:PRINT "/";KEYS$(II);"/":NEXT:PRINT KEYWN:STOP
  711. 23130  RETURN
  712. 23140 '
  713. 23200 *検索データ検出
  714. 23210  FOR II=0 TO 15:SRD(II)=0:NEXT II
  715. 23220  IF SITM<>17 THEN 23240
  716. 23230    FOR II=1 TO  3:SRD(II)=1:NEXT II:GOTO 23310
  717. 23240  IF SITM<>18 THEN 23260
  718. 23250    FOR II=4 TO  7:SRD(II)=1:NEXT II:GOTO 23310
  719. 23260  IF SITM<>19 THEN 23280
  720. 23270    FOR II=4 TO 15:SRD(II)=1:NEXT II:GOTO 23310
  721. 23280  IF SITM<>20 THEN 23300
  722. 23290    FOR II=1 TO 15:SRD(II)=1:NEXT II:GOTO 23310
  723. 23300  SRD(SITM-1)=1
  724. 23310      'COLOR 1:FOR II=0 TO 15:PRINT II;"---";SRD(II):NEXT II:STOP
  725. 23315  RETURN
  726. 23320 '
  727. 23400 *検索年月日更新
  728. 23405  IF SMODE=4 THEN SRCCNT=0:RETURN
  729. 23410  YR=YRM:MN=MNM:YDEF=0:MDEF=+1
  730. 23420  GOSUB *年月変更
  731. 23430  IF (YR*12+MN)<=(YRE*12+MNE) THEN 23440
  732. 23435  SRCCNT=0:RETURN
  733. 23440  IYM$=YR$+MN$
  734. 23450  SRCCNT=1
  735. 23460  RETURN
  736. 23470 '
  737. 23500 *検索中止
  738. 23510  SRCABT=1
  739. 23520  RDY=32
  740. 23540  RETURN 25390
  741. 23550 '
  742. 25000 *検索実行
  743. 25010  IF SMODE=1 THEN KEYS=1:YENS=0:ALLS=0
  744. 25011  IF SMODE=2 THEN KEYS=0:YENS=1:ALLS=0
  745. 25012  IF SMODE=3 THEN KEYS=1:YENS=1:ALLS=0
  746. 25013  IF SMODE=4 THEN KEYS=0:YENS=0:ALLS=1
  747. 25020  IF KEYS=0 THEN 25030
  748. 25025  GOSUB *キーワード検出
  749. 25030  GOSUB *検索データ検出
  750. 25040  MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  751. 25050  GOSUB *SRCROPN:FLN$=DRV$+PATH$+"\SRCW.DAT"
  752. 25060  CLOSE :KILL FLN$
  753. 25100  RSR=0:SRCABT=0
  754. 25110  IYM$=YRS$+MNS$
  755. 25120  GOSUB *HKISRC
  756. 25125  YRM$=RIGHT$(STR$(10000+YRM),4)
  757. 25126  MNM$=RIGHT$(STR$(100+MNM),2)
  758. 25130  IF FIDX=0 THEN 25400
  759. 25135  KEY(10) ON
  760. 25140    FOR RDY=1 TO 31
  761. 25145      GOSUB *検索アクセス表示
  762. 25150      GOSUB *HKDGET
  763. 25200      IF ALLS=1 THEN GOSUB *無条件検索:GOTO 25380
  764. 25210      IF KEYS=1 THEN GOSUB *キーデータ検索
  765. 25220      IF YENS=1 THEN GOSUB *金額データ検索
  766. 25380    NEXT RDY:KEY(10) OFF
  767. 25390    IF SRCABT=1 THEN 25430
  768. 25400  GOSUB *検索年月日更新
  769. 25410  IF SRCCNT=1 THEN 25120
  770. 25430  RETURN
  771. 25480 '
  772. 25500 *無条件検索
  773. 25510  UX$(1)=YRM$+"."+MNM$+"."+RIGHT$(STR$(100+RDY),2)
  774. 25520  IF SITM=1 THEN 25590
  775. 25530  YR=YRM:MN=MNM:DY=RDY:GOSUB *週検索
  776. 25540  UX$(2)="("+WKM$+")"
  777. 25550  UX$(3)=ITEM$(SITM)
  778. 25560  UX$(4)=RIGHT$(DYN$(SITM-1),8)
  779. 25570  UX$(5)=DRM$(SITM-1)
  780. 25580  GOTO 25610
  781. 25590  VX$(1)=UX$(1)
  782. 25600  VX$(2)=DEV$
  783. 25610  GOSUB *検索データ表示保存
  784. 25620  RETURN'
  785. 25630 '
  786. 25700 *キーデータ検索
  787. 25704  FOR II=0 TO 15:FKEYS(II)=0:NEXT II
  788. 25705  FOR SIT=0 TO 15:FDATA=0
  789. 25706    IF SRD(SIT)=0 THEN 25780
  790. 25710    IF KEYWN=0 THEN FDATA=1:GOTO 25775
  791. 25720    FOR II=1 TO KEYWN
  792. 25725      IF SITM=1 THEN 25740
  793. 25730      IF INSTR(DRM$(SIT),KEYS$(II))=0 THEN 25760 ELSE 25750
  794. 25740      IF INSTR(DEV$     ,KEYS$(II))=0 THEN 25760 ELSE 25750
  795. 25750      FDATA=1:FKEYS(SIT)=1:II=KEYWN+1
  796. 25760    NEXT II
  797. 25770    IF FDATA=0 THEN 25780
  798. 25775    IF YENS=1 THEN 25780
  799. 25776    SITMX=SITM:SITM=SIT+1:GOSUB *無条件検索:SITM=SITMX
  800. 25780  NEXT SIT
  801. 25790  RETURN
  802. 25795 '
  803. 25800 *金額データ検索
  804. 25805  FOR SIT=0 TO 15:FDATA=0
  805. 25806    IF SRD(SIT)=0 THEN 25880
  806. 25830    IF DYN#(SIT)<YNL# THEN 25880 
  807. 25840    IF DYN#(SIT)>YNH# THEN 25880 
  808. 25850    FDATA=1
  809. 25875    IF KEYS=0 THEN 25877
  810. 25876    IF FKEYS(SIT)=0 THEN 25880
  811. 25877    SITMX=SITM:SITM=SIT+1:GOSUB *無条件検索:SITM=SITMX
  812. 25880  NEXT SIT
  813. 25890  RETURN
  814. 25895 '
  815. 26000 *検索データ表示
  816. 26010  COLOR 0
  817. 26015  IF RSR=1 THEN LOCATE 0,6
  818. 26020  IF SITM=1 THEN 26100
  819. 26030  PRINT "  ";UX$(1);
  820. 26040  IF UX$(2)="(日)" THEN CW=2:GOTO 26050
  821. 26042  IF UX$(2)="(土)" THEN CW=1:GOTO 26050
  822. 26044                        CW=0:GOTO 26050
  823. 26050  COLOR CW:PRINT UX$(2);" ";
  824. 26060  COLOR  1:PRINT UX$(3);" ";
  825. 26070  COLOR  0:PRINT UX$(4);" ";
  826. 26080  COLOR  0:PRINT UX$(5)
  827. 26090  RETURN
  828. 26100  PRINT "  ";VX$(1);" ";
  829. 26110  PRINT VX$(2)
  830. 26120  RETURN
  831. 26130 '
  832. 26200 *検索データ保存
  833. 26210  IF SITM=1 THEN 26230
  834. 26220  GOSUB *SRCRPUT1:RETURN
  835. 26230  GOSUB *SRCRPUT2:RETURN
  836. 26240 '
  837. 26300 *検索データ表示保存
  838. 26310  RSR=RSR+1
  839. 26320  SRCFND$=RIGHT$(STR$(10000+RSR),4)
  840. 26330  SXM=POS(0):SYM=CSRLIN
  841. 26340  LOCATE 63,23:COLOR 7
  842. 26350  PRINT "●該当件数:";SRCFND$;
  843. 26360  LOCATE SXM,SYM
  844. 26370  GOSUB *検索データ表示
  845. 26380  GOSUB *検索データ保存
  846. 26390  RETURN
  847. 26395 '
  848. 26400 *検索アクセス表示
  849. 26410  SRCYMD$=YRM$+"."+MNM$+"-"+RIGHT$(STR$(100+RDY),2)
  850. 26420  SXM=POS(0):SYM=CSRLIN
  851. 26430  LOCATE 38,23:COLOR 7
  852. 26440  PRINT "●検索年月日:";SRCYMD$;
  853. 26450  LOCATE SXM,SYM
  854. 26460  RETURN
  855. 26470 '
  856. 27000 *初期表示ポイント検出
  857. 27010  GOSUB *SRCROPN:CLOSE
  858. 27020  SR=INT((BR-1)/16)*16+1
  859. 27030  ER=BR
  860. 27040  RETURN
  861. 27050 '
  862. 27060 *検索結果データ表示MAIN
  863. 27070  GOSUB *検索結果データ初期化
  864. 27075  IF SITM=1 THEN 27085
  865. 27080  GOSUB *SRCRGET1:GOTO 27130
  866. 27085  GOSUB *SRCRGET2:GOTO 27130
  867. 27130  GOSUB *検索結果データ画面消去
  868. 27140  GOSUB *検索結果データ表示
  869. 27150  RETURN
  870. 27170 '
  871. 27200 *検索結果データ表示
  872. 27210  DSPLX=DSPL:FOR DSPL=1 TO 16
  873. 27220    GOSUB *検索結果データ表示SUB
  874. 27225    GOSUB *検索結果ページ表示
  875. 27230  NEXT DSPL:DSPL=DSPLX
  876. 27240  RETURN
  877. 27245 *検索結果データ表示SUB
  878. 27250  COLOR 0:LOCATE 2,5+DSPL
  879. 27260  IF SITM=1 THEN 27310
  880. 27265  PRINT UXX$(DSPL,1);
  881. 27270  IF UXX$(DSPL,2)="(日)" THEN CW=2:GOTO 27285
  882. 27275  IF UXX$(DSPL,2)="(土)" THEN CW=1:GOTO 27285
  883. 27280                              CW=0:GOTO 27285
  884. 27285  COLOR CW:PRINT UXX$(DSPL,2);" ";
  885. 27290  COLOR  1:PRINT UXX$(DSPL,3);" ";
  886. 27295  COLOR  0:PRINT UXX$(DSPL,4);" ";
  887. 27300  COLOR  0:PRINT UXX$(DSPL,5);
  888. 27305  RETURN
  889. 27310  PRINT VXX$(DSPL,1);" ";
  890. 27315  PRINT VXX$(DSPL,2);
  891. 27320  RETURN
  892. 27325 '
  893. 27330  RETURN
  894. 27340 '
  895. 27400 *検索結果データ画面消去
  896. 27410  FOR II=6 TO 21
  897. 27420    LOCATE 0,II:COLOR 7
  898. 27430    PRINT SPACE$(78);
  899. 27440  NEXT II
  900. 27460  RETURN
  901. 27470 '
  902. 27480 *ページ変更
  903. 27490  PCAN=0:PCANX=0:SR=SR+PDEF*16
  904. 27500  IF SR<1  THEN SR=1                  :PCANX=1:GOTO 27520
  905. 27510  IF SR>BR THEN SR=INT((BR-1)/16)*16+1:PCANX=1:GOTO 27520
  906. 27520  ER=SR+15
  907. 27530  IF ER>BR THEN ER=ER-1:GOTO 27530
  908. 27540  IF PCANX=1 AND (SWNO=2 OR SWNO=3) THEN PCAN=1
  909. 27550  RETURN
  910. 27560 '
  911. 27570 '
  912. 27580 *検索結果データ初期化'
  913. 27590  FOR II=0 TO 16
  914. 27600    UXX$(II,1)=SPACE$(10)
  915. 27610    UXX$(II,2)=SPACE$(4)
  916. 27620    UXX$(II,3)=SPACE$(6)
  917. 27630    UXX$(II,4)=SPACE$(8)
  918. 27640    UXX$(II,5)=SPACE$(32)
  919. 27650    VXX$(II,1)=SPACE$(10)
  920. 27660    VXX$(II,2)=SPACE$(64)
  921. 27720  NEXT II
  922. 27730  RETURN
  923. 27740 '
  924. 27800 *検索結果ページ表示
  925. 27810  TPAGE=INT((BR-1)/16)+1:TPAGE$=RIGHT$(STR$(1000+TPAGE),3)
  926. 27820   PAGE=INT((SR-1)/16)+1: PAGE$=RIGHT$(STR$(1000+ PAGE),3)
  927. 27830  LOCATE 64,23:COLOR 4
  928. 27840  PRINT "PAGE:";PAGE$;" / ";TPAGE$;
  929. 27850  RETURN
  930. 27860 '
  931. 29000 '------------------------------------------------------------------
  932. 30000 *検索モード読み取り
  933. 30010  RESTORE *検索モード項目:READ MODEN
  934. 30020  FOR SMODE=1 TO MODEN
  935. 30030    READ SMODE$(SMODE)
  936. 30035    FOR II=1 TO 5:READ SMOPT(SMODE,II):NEXT II
  937. 30040  NEXT SMODE
  938. 30050  SMODE=1
  939. 30060  RESTORE *項目データ
  940. 30065  FOR II=1 TO 20
  941. 30070    READ ITEM$(II),ITEMC(II)
  942. 30075    IF (II>1) AND (II<17) THEN ITEM$(II)=CFI$(II-1)
  943. 30080  NEXT II
  944. 30085  RETURN
  945. 30090 '
  946. 30130 *ボタン座標読み取り
  947. 30140  RESTORE *ボタン座標:READ SWGN
  948. 30150  FOR G=1 TO SWGN
  949. 30160    READ SWN(G),SMX(G),SMY(G),SMW(G)
  950. 30170    FOR B=1 TO SWN(G)
  951. 30180      READ XB1(G,B),XB2(G,B),YB1(G,B),YB2(G,B)
  952. 30190    NEXT B
  953. 30200  NEXT G
  954. 30210  RETURN
  955. 30220 '
  956. 30230 *ボタンON_OFF表示
  957. 30240  IF BST(G,B)=1 THEN BSC=7:BSB=0:BSA=2:GOTO 30260
  958. 30250                    BSC=0:BSB=7:BSA=5
  959. 30260   CONNECT(XB1(G,B  ),YB2(G,B)  )-(XB2(G,B)  ,YB2(G,B)  )-(XB2(G,B  ),YB1(G,B)  ),BSC,PSET
  960. 30270   CONNECT(XB1(G,B)+1,YB2(G,B)-1)-(XB2(G,B)-1,YB2(G,B)-1)-(XB2(G,B)-1,YB1(G,B)+1),BSC,PSET
  961. 30280   CONNECT(XB1(G,B)  ,YB2(G,B)  )-(XB1(G,B)  ,YB1(G,B)  )-(XB2(G,B)  ,YB1(G,B)  ),BSB,PSET
  962. 30290   CONNECT(XB1(G,B)+1,YB2(G,B)-1)-(XB1(G,B)+1,YB1(G,B)+1)-(XB2(G,B)-1,YB1(G,B)+1),BSB,PSET
  963. 30300   LINE(XB1(G,B)+4,YB1(G,B)+4)-(XB1(G,B)+6,YB1(G,B)+5),PSET,BSA,BF
  964. 30305  IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT 16
  965. 30310  RETURN
  966. 30320 '
  967. 30330 *マウスボタン選択
  968. 30340  SWERC=0
  969. 30350  IF MOUSE(2,0)=0 THEN 30350
  970. 30360  X_M=MOUSE(4,0):Y_M=MOUSE(5,0):SWNO=0
  971. 30370  FOR IMS=1 TO SWN(G)
  972. 30380    IF (X_M>XB1(G,IMS) AND X_M<XB2(G,IMS)) ELSE 30410
  973. 30390    IF (Y_M>YB1(G,IMS) AND Y_M<YB2(G,IMS)) ELSE 30410
  974. 30400    SWNO=IMS:IMS=SWN(G)+1
  975. 30410  NEXT IMS:FOR IM=1 TO 500:NEXT IM
  976. 30420  IF SWNO=0 AND SWPASS=1 THEN GOSUB *シート選択判定:GOTO 30460
  977. 30430  IF SWNO=0 AND SWERC>5  THEN MESN=12:GOSUB *SNDMSG       :GOTO 30350
  978. 30440  IF SWNO=0              THEN SMSGPLAY 3:SWERC=SWERC+1:GOTO 30350
  979. 30460  SWPASS=0
  980. 30470  RETURN
  981. 30480 '
  982. 30500 *数字漢字変換
  983. 30505  NBK$=""
  984. 30510  FOR INBK=1 TO NBN
  985. 30512    NBAX$=MID$(NBA$,INBK,1)
  986. 30514    IF NBAX$=" " THEN NBK$=NBK$+" ":GOTO 30530
  987. 30520    NBK$=NBK$+KNJ$(&H2330+VAL(NBAX$))
  988. 30530  NEXT INBK
  989. 30540  RETURN
  990. 30580 '
  991. 30760 '
  992. 30820 *シート選択判定
  993. 30880  RETURN
  994. 30890 '
  995. 31000 *FADEOUT:CLS 1:CONSOLE 0,24,0
  996. 31010  FOR II=0 TO 15
  997. 31020    PALETTE II,[16*II,16*II,16*II]
  998. 31030  NEXT II
  999. 31040  FOR II=0 TO 255 STEP 5
  1000. 31050    FOR JJ=0 TO 15:KK=16*JJ+II*(255-16*JJ)/255
  1001. 31054      PALETTE JJ,[KK,KK,KK]
  1002. 31056    NEXT JJ
  1003. 31060  NEXT II
  1004. 31070  RETURN
  1005. 31080 '
  1006. 31200 *確認
  1007. 31205  LOCATE 27,3:PRINT SPACE$(52)
  1008. 31210  GET@A(214,50)-(630,79),CUTN#
  1009. 31220  LOAD@ TIFDRV$+"\CAUTION.TIF",(214,50)
  1010. 31225  PLAY "o6l4ce"
  1011. 31230  FOR II=1 TO 4:PLAY "O4G32"
  1012. 31232    LOCATE 40,3:COLOR 6:PRINT CMES$;:'28chr
  1013. 31234    WAIT SWAIT/10
  1014. 31236    LOCATE 40,3:PRINT SPACE$(28)
  1015. 31237    WAIT SWAIT/10
  1016. 31238  NEXT II
  1017. 31239  LOCATE 40,3:COLOR 7:PRINT CMES$;:MESN=19:GOSUB *SNDMSG:'28chr
  1018. 31240  G=3:GOSUB *マウスボタン選択
  1019. 31245  G=3:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  1020. 31250  LOCATE 40,3:PRINT SPACE$(28)
  1021. 31260  WAIT SWAIT/5
  1022. 31270  PUT@A(214,50)-(630,79),CUTN#
  1023. 31275  RETURN
  1024. 31280 '
  1025. 35000 *HKIOPN:'---------- インデックスファイルオープン
  1026. 35005  DRV$=LEFT$(DATDRV$,2)
  1027. 35010  IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35020
  1028. 35015  PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
  1029. 35020  FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
  1030. 35030  OPEN "R",#2,FLN$
  1031. 35040  FIELD #2,6 AS I$(1),32 AS I$(2)
  1032. 35050  IR=LOF(2)
  1033. 35060  RETURN
  1034. 35070 '
  1035. 35100 *HKDOPN:'---------- 家計簿データファイルオープン
  1036. 35105  DRV$=LEFT$(DATDRV$,2)
  1037. 35110  IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 35120
  1038. 35115  PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
  1039. 35120  FLN$=DRV$+"(768)"+PATH$+"\HL"+IYM$+".DAT"
  1040. 35130  OPEN "R",#1,FLN$
  1041. 35140  FIELD #1,64 AS D$(1),10*16 AS D$(2),32*4 AS D$(3),32*4 AS D$(4),32*4 AS D$(5),32*4 AS D$(6),32 AS D$(7)
  1042. 35150  AR=LOF(1)
  1043. 35160  RETURN
  1044. 35170 '
  1045. 35200 *SRCSOPN:'---------- 検索条件ファイルオープン
  1046. 35205  DRV$=LEFT$(PRGDRV$,2)
  1047. 35210  IF LEN(PRGDRV$)=3 THEN DRV$=LEFT$(PRGDRV$,2):PATH$="":GOTO 35220
  1048. 35215  PATH$=RIGHT$(PRGDRV$,LEN(PRGDRV$)-2)
  1049. 35220  FLN$=DRV$+"(54)"+PATH$+"\SRCS.DAT"
  1050. 35230  OPEN "R",#1,FLN$
  1051. 35240  FIELD #1,4 AS S$(1),2 AS S$(2),4 AS S$(3),2 AS S$(4),24 AS S$(5),8 AS S$(6),8 AS S$(7),2 AS S$(8)
  1052. 35260  RETURN
  1053. 35270 '
  1054. 35300 *SRCROPN:'---------- 検索結果ファイルオープン
  1055. 35305  DRV$=LEFT$(RAMDRV$,2)
  1056. 35310  IF LEN(RAMDRV$)=3 THEN DRV$=LEFT$(RAMDRV$,2):PATH$="":GOTO 35320
  1057. 35315  PATH$=RIGHT$(RAMDRV$,LEN(RAMDRV$)-2)
  1058. 35320  FLN$=DRV$+"(74)"+PATH$+"\SRCW.DAT"
  1059. 35330  OPEN "R",#3,FLN$
  1060. 35340  FIELD #3,10 AS U$(1),4 AS U$(2),6 AS U$(3),8 AS U$(4),32 AS U$(5),14 AS U$(6)
  1061. 35350  FIELD #3,10 AS V$(1),64 AS V$(2)
  1062. 35360  BR=LOF(3)
  1063. 35365  RETURN
  1064. 35370 '
  1065. 36000 *HKISRC:'---------- インデックスファイル検索
  1066. 36005  FIDX=0
  1067. 36010  GOSUB *HKIOPN
  1068. 36020  FOR R=1 TO IR
  1069. 36030    GET #2,R
  1070. 36040    IF IYM$<>I$(1) THEN 36060
  1071. 36050    IYM$=I$(1):IMAK$=I$(2):RI=R:R=IR+1:FIDX=1
  1072. 36060  NEXT R:IF FIDX=0 THEN 36070
  1073. 36062  GET #2,RI
  1074. 36064  YRM=VAL(LEFT$(I$(1),4)):MNM=VAL(RIGHT$(I$(1),2))
  1075. 36070  CLOSE #2
  1076. 36080  RETURN
  1077. 36090 '
  1078. 36200 *HKDGET:'---------- 家計簿データ読み込み
  1079. 36210  GOSUB *HKDOPN
  1080. 36220  R=RDY
  1081. 36230  GET #1,R
  1082. 36240  DEV$=D$(1)
  1083. 36250  FOR II=1 TO 16:DYN$(II   )=MID$(D$(2),(II-1)*10+1,10):NEXT II
  1084. 36252  FOR II=1 TO  4:DRM$(II+ 0)=MID$(D$(3),(II-1)*32+1,32):NEXT II
  1085. 36253  FOR II=1 TO  4:DRM$(II+ 4)=MID$(D$(4),(II-1)*32+1,32):NEXT II
  1086. 36254  FOR II=1 TO  4:DRM$(II+ 8)=MID$(D$(5),(II-1)*32+1,32):NEXT II
  1087. 36255  FOR II=1 TO  4:DRM$(II+12)=MID$(D$(6),(II-1)*32+1,32):NEXT II
  1088. 36256  DDM$=D$(7)
  1089. 36260  GOSUB *HKDCAL
  1090. 36280  CLOSE #1
  1091. 36290  RETURN
  1092. 36295 '
  1093. 36400 *HKDCAL:'---------- 家計簿金額計算
  1094. 36410  FOR II=1 TO 16:DYN#(II)=VAL(DYN$(II)):NEXT II
  1095. 36490  RETURN
  1096. 36495 '
  1097. 36500 *SRCSGET:'---------- 検索条件ファイル読み込み
  1098. 36510  GOSUB *SRCSOPN
  1099. 36520  GET #1,1
  1100. 36530  FOR II=1 TO 8:SX$(II)=S$(II):NEXT II
  1101. 36540  CLOSE #1
  1102. 36542  SR1YR=VAL(SX$(1)):SR1MN=VAL(SX$(2))
  1103. 36544  SR2YR=VAL(SX$(3)):SR2MN=VAL(SX$(4))
  1104. 36550  RETURN
  1105. 36560 '
  1106. 36600 *SRCSPUT:'---------- 検索条件ファイル書き込み
  1107. 36610  GOSUB *SRCSOPN
  1108. 36620  FOR II=1 TO 8:LSET S$(II)=SX$(II):NEXT II
  1109. 36630  PUT #1,1
  1110. 36640  CLOSE #1
  1111. 36650  RETURN
  1112. 36660 '
  1113. 36700 *SRCRPUT1:'----------検索結果ファイル書き込み1
  1114. 36710  GOSUB *SRCROPN
  1115. 36720  FOR II=1 TO 6:LSET U$(II)=UX$(II):NEXT II
  1116. 36730  PUT #3,RSR
  1117. 36740  CLOSE #3:RETURN
  1118. 36750 *SRCRPUT2:'----------検索結果ファイル書き込み2
  1119. 36760  GOSUB *SRCROPN
  1120. 36770  FOR II=1 TO 2:LSET V$(II)=VX$(II):NEXT II
  1121. 36780  PUT #3,RSR
  1122. 36790  CLOSE #3:RETURN
  1123. 36795 '
  1124. 36800 *SRCRGET1:'----------検索結果ファイル読み込み1
  1125. 36810  GOSUB *SRCROPN:DSPL=1
  1126. 36815  FOR R=SR TO ER
  1127. 36820    GET #3,R
  1128. 36830    FOR II=1 TO 6:UXX$(DSPL,II)=U$(II):NEXT II
  1129. 36832    DSPL=DSPL+1
  1130. 36835  NEXT R
  1131. 36840  CLOSE #3:RETURN
  1132. 36850 *SRCRGET2:'----------検索結果ファイル読み込み2
  1133. 36860  GOSUB *SRCROPN:DSPL=1
  1134. 36865  FOR R=SR TO ER
  1135. 36870    GET #3,R
  1136. 36880    FOR II=1 TO 2:VXX$(DSPL,II)=V$(II):NEXT II
  1137. 36882    DSPL=DSPL+1
  1138. 36885  NEXT R
  1139. 36890  CLOSE #3:RETURN
  1140. 36895 '
  1141. 37190 '
  1142. 39000 *CONFIGファイルチェック'  V10 1993.02.07
  1143. 39010  OPEN "R",#1,"(1)HK.CFG"
  1144. 39020  FIELD #1,1 AS D$
  1145. 39030  IF LOF(1)=0 THEN *CFGFE1
  1146. 39035  CLOSE
  1147. 39040  OPEN "I",#1,"HK.CFG"
  1148. 39050  GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$
  1149. 39052  GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$
  1150. 39054  GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$
  1151. 39056  TIFDRV$=PRGDRV$+"\TIFF"    :'-- TIFDRV$
  1152. 39058  GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$
  1153. 39060  GOSUB *CFGREAD             :'-- SNDMF
  1154. 39062    IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
  1155. 39064    SNDMF=VAL(RIGHT$(CFG$,1))
  1156. 39066  GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$
  1157. 39068  GOSUB *CFGREAD             :'-- SWAIT
  1158. 39070    IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
  1159. 39072    SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
  1160. 39080  FOR II=1 TO 15
  1161. 39082    GOSUB *CFGREAD:CFI$(II)=CFG$
  1162. 39084  NEXT II
  1163. 39140  CLOSE
  1164. 39150  RETURN
  1165. 39200 *CFGFE1
  1166. 39220  LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルが見当たりません。 家計簿を終了します。"
  1167. 39230  CLOSE:WAIT 100:SYSTEM
  1168. 39300 *CFGFE2
  1169. 39320  LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの内容に誤りがあります。 家計簿を終了します。"
  1170. 39330  CLOSE:WAIT 100:SYSTEM
  1171. 39400 *CFGFE3
  1172. 39420  LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
  1173. 39430  CLOSE:WAIT 100:SYSTEM
  1174. 39500 *CFGREAD
  1175. 39510  IF EOF(1)<>0 THEN *CFGFE3
  1176. 39520  LINE INPUT #1,CFG$
  1177. 39530  IF LEFT$(CFG$,1)="/" THEN 39510
  1178. 39540  RETURN
  1179. 39990 '
  1180. 40000 *ボタン座標:'-------------------------------------------------------
  1181. 40010 DATA 3   'SWGN        スイッチグループ数 
  1182. 40090 '/////////////////////////////
  1183. 40100 '-------------------- [G1] メインスイッチグループ
  1184. 40110 '    SWN(G),SMX,SMY,SMW
  1185. 40120 DATA     8 ,0.5,0.6, 1
  1186. 40130 '    XB1 XB2 YB1 YB2 
  1187. 40140 DATA 216,239, 56, 73  '"▲"---------- 1
  1188. 40150 DATA 240,263, 56, 73  '"▼"---------- 2
  1189. 40160 DATA 264,309, 56, 73  '"SELECT"------ 3
  1190. 40170 DATA 551,591, 42, 79  '"実行"-------- 4
  1191. 40180 DATA 592,630, 42, 79  '"取消"-------- 5
  1192. 40190 DATA 559,591, 90,106  '"▲前"-------- 6
  1193. 40200 DATA 592,624, 90,106  '"▼次"-------- 7
  1194. 40210 DATA 592,630,  3, 41  '"END"--------- 8
  1195. 40220 '-------------------- [G2] 検索メニュースイッチグループ
  1196. 40230 '    SWN(G),SMX,SMY,SMW
  1197. 40240 DATA    33 ,0.5,0.6,  0
  1198. 40250 '    XB1 XB2 YB1 YB2 
  1199. 40260 DATA 466,509,131,159  '"決定"-------- 1
  1200. 40270 DATA 510,551,131,159  '"取消"-------- 2
  1201. 40280 DATA 380,399,171,187  '"▲"---------- 3
  1202. 40290 DATA 400,419,171,187  '"▼"---------- 4
  1203. 40300 DATA 483,502,171,187  '"▲"---------- 5
  1204. 40310 DATA 503,522,171,187  '"▼"---------- 6
  1205. 40320 DATA 380,399,209,225  '"▲"---------- 7
  1206. 40330 DATA 400,419,209,225  '"▼"---------- 8
  1207. 40340 DATA 483,502,209,225  '"▲"---------- 9
  1208. 40350 DATA 503,522,209,225  '"▼"----------10
  1209. 40360 DATA 505,522,247,263  '"KEY WORD"----11
  1210. 40370 DATA 377,394,285,301  '"金額上限"----12
  1211. 40380 DATA 505,522,285,301  '"金額加減"----13
  1212. 40390 '
  1213. 40400 DATA 494,539,379,395  '"出来事"------14
  1214. 40410 DATA 310,355,324,340  '"給 与"------15
  1215. 40420 DATA 310,355,341,357  '"臨 時"------16
  1216. 40430 DATA 310,355,358,374  '"他収入"------17
  1217. 40440 DATA 356,401,324,340  '"食 費"------18
  1218. 40450 DATA 356,401,341,357  '"生活費"------19
  1219. 40460 DATA 356,401,358,374  '"洗濯代"------20
  1220. 40470 DATA 402,447,324,340  '"光熱費"------21
  1221. 40480 DATA 402,447,341,357  '"被服費"------22
  1222. 40490 DATA 402,447,358,374  '"交際費"------23
  1223. 40500 DATA 448,493,324,340  '"娯楽費"------24
  1224. 40510 DATA 448,493,341,357  '"酒 代"------25
  1225. 40520 DATA 448,493,358,374  '"車維持"------26
  1226. 40530 DATA 494,539,324,340  '"教育費"------27
  1227. 40540 DATA 494,539,341,357  '"雑 費"------28
  1228. 40550 DATA 494,539,358,374  '"他支出"------29
  1229. 40560 DATA 310,355,379,395  '"全収入"------30
  1230. 40570 DATA 356,401,379,395  '"基支出"------31
  1231. 40580 DATA 402,447,379,395  '"全支出"------32
  1232. 40590 DATA 448,493,379,395  '"全収支"------33
  1233. 40600 '-------------------- [G3] 確認スイッチグループ
  1234. 40610 '    SWN(G),SMX,SMY,SMW
  1235. 40620 DATA     2 ,0.8,0.8,  0
  1236. 40630 '    XB1 XB2 YB1 YB2 
  1237. 40640 DATA 552,583, 56, 73  '"OK"---------- 1
  1238. 40650 DATA 584,615, 56, 73  '"NG"---------- 2
  1239. 40690 '
  1240. 50000 *検索モード項目
  1241. 50010 DATA 4
  1242. 50015 '    "  検索モード  ",開始,終了,Key ,金額,項目
  1243. 50020 DATA "キーワード指定検索",   1,   1,   1,   0,   1
  1244. 50030 DATA " 金額 指定検索",   1,   1,   0,   1,   1
  1245. 50040 DATA "キーワード金額検索",   1,   1,   1,   1,   1
  1246. 50050 DATA " 月間一覧表示 ",   1,   0,   0,   0,   1
  1247. 51300 *項目データ
  1248. 51400 DATA "出来事",0'----- 1
  1249. 51410 DATA "給 与",4'----- 2
  1250. 51420 DATA "臨 時",4'----- 3
  1251. 51430 DATA "他収入",4'----- 4
  1252. 51440 DATA "食 費",1'----- 5
  1253. 51450 DATA "生活費",1'----- 6
  1254. 51460 DATA "洗濯代",1'----- 7
  1255. 51470 DATA "光熱費",1'----- 8
  1256. 51480 DATA "被服費",1'----- 9
  1257. 51490 DATA "交際費",1'-----10
  1258. 51500 DATA "娯楽費",1'-----11
  1259. 51510 DATA "酒 代",1'-----12
  1260. 51520 DATA "車維持",1'-----13
  1261. 51530 DATA "教育費",1'-----14
  1262. 51540 DATA "雑 費",1'-----15
  1263. 51550 DATA "他支出",2'-----16
  1264. 51560 DATA "全収入",2'-----17
  1265. 51570 DATA "基支出",2'-----18
  1266. 51580 DATA "全支出",2'-----19
  1267. 51590 DATA "全収支",2'-----20
  1268. 60000 '
  1269. 60010 ' 座標確認 DEBUG ROUTINE
  1270. 60020 '
  1271. 60030 MOUSE 0:MOUSE 1,0,0,1
  1272. 60040  IF MOUSE(2,1)<>0 THEN STOP
  1273. 60050  IF MOUSE(2,0)=0 THEN 60050
  1274. 60060  X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
  1275. 60070  LOCATE 2,24:COLOR 7:PRINT "X=";X_M,"Y=";Y_M,"LX=";LX,"LY=";LY;
  1276. 60080  GOTO 60040
  1277. 61000 ' 
  1278. 61100 *検索条件TESTファイル作成
  1279. 61110  DATDRV$="A:\"
  1280. 61120  SX$(1)="1992"
  1281. 61130  SX$(2)="01"
  1282. 61140  SX$(3)="1992"
  1283. 61150  SX$(4)="07"
  1284. 61160  SX$(5)="012345678901234567890123"
  1285. 61165  SX$(5)="0123456789小村利明890123"
  1286. 61170  SX$(6)="00000000"
  1287. 61180  SX$(7)="99999999"
  1288. 61190  SX$(8)="01"
  1289. 61200  GOSUB *SRCSPUT
  1290. 61210 STOP
  1291. 62000 LOCATE 2,6:COLOR 0'
  1292. 62010 PRINT "1992.02.14(日) 給  与 00000000 ";STRING$(32,"A");
  1293. 62100 LOCATE 2,7:COLOR 0
  1294. 62110 PRINT "1992.02.14 ";STRING$(64,"A");
  1295. 62120 STOP
  1296.